[정처기] 정보처리기사 실기 Java 문제 모음
업데이트:
✅ 정보처리기사 Java 문제 모음
📌 다음은 Java 코드이다. 올바른 출력 결과를 작성하시오. ( 23년 3회 )
class Parent {
int compute(int num) {
if(num <= 1)
return num;
return compute(num-1) + compute(num-2);
}
}
class Child extends Parent {
int compute(int num) {
if(num <= 1)
return num;
return compute(num-1) + compute(num-3);
}
}
public class main {
public static void main(String args[]) {
Parent obj = new Child();
System.out.print(obj.compute(7));
}
}
정답 : 2
compute(6) + compute(4)
= compute(5) + compute(3) + compute(3) + compute(1)
= compute(4) + compute(2) + compute(2) + compute(0) + compute(2) + compute(0) + 1
= compute(3) + compute(1) + compute(1) + compute(-1) + compute(1) + compute(-1) + compute(1) + compute(-1) + 1
= compute(2) + 1 + 1 - 1 + 1 - 1 + 1 - 1 + 1
= compute(1) - 1 + 1 - 1 + 1 + 1 - 1 + 1 - 1 + 1 - 1 + 1
= 2
📌 다음 자바 코드를 실행할 경우 에러가 발생이 된다. 에러가 발생하는 라인명을 작성하시오. ( 23년 3회 )
1 class Person {
2 private String name;
3 public Person(String val) {
4 name = val;
5 }
6 public static String get() {
7 return name;
8 }
9 public void print() {
10 System.out.println(name);
11 }
12 }
13
14 public class main {
15 public static void main(String[] args) {
16 Person obj = new Person("Kim");
17 obj.print();
18 }
19 }
정답 : 7
`name`은 인스턴스 변수이고, `get()`은 static 메서드이기 때문에
static 메서드인 `get()`에서는 name에 접근할 수 없다.
📌 다음은 JAVA 코드 문제이다. 가지고 있는 돈이 총 4620원일 경우 1000원, 500원, 100원, 10원의 지폐 및 동전을 이용하여 보기의 조건에 맞춰 최소한의 코드를 통해 괄호안을 작성하시오. ( 23년 2회 )
<보기>
변수 : m
연산자 : / , %
괄호 : [ , ] , ( , )
정수 : 1000, 500, 100, 10
public class Problem {
public static void main(String[] args){
m = 4620;
a = ( );
b = ( );
c = ( );
d = ( );
System.out.println(a); //천원짜리 4장 출력
System.out.println(b); //오백원짜리 1개 출력
System.out.println(c); //백원짜리 1개 출력
System.out.println(d); //십원짜리 2개 출력
}
}
정답 :
m / 1000
(m % 1000) % 500
(m % 500) / 100
(m % 100) / 10
📌 다음은 자바에 대한 문제이다. 알맞은 출력값을 작성하시오. ( 23년 2회 )
public class Main{
public static void main(String[] args) {
String str1 = 'Programming';
String str2 = 'Programming';
String str3 = new String('Programming');
println(str1==str2)
println(str1==str3)
println(str1.equals(str3))
print(str2.equals(str3))
}
}
정답 :
true
false
true
true
📌아래 자바 코드에서 출력되는 값을 작성하시오. ( 23년 1회 )
class Static{
public int a = 20;
static int b = 0;
}
public class Main{
public static void main(String[] args) {
int a;
a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
정답 :
10
11
10
20
static 변수는 클래스 변수이므로 클래스 내에서는 값이 공유된다.
📌다음 코드에서 괄호안에 알맞는 값을 변수명으로 작성하시오. ( 23년 1회 )
public class Sort {
public static void swap(int[] arr, int idx1, int idx2){
int temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[( 1 )] = temp;
}
public static void Usort(int[] array, int length){
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
}
public static void main(String[] args) {
int[] item = new int[] { 5, 3, 8, 1, 2, 7 };
int nx = 6;
Usort(item, ( 2 ));
for (int data : item) {
System.out.print(data + " ");
}
}
}
출력값 : 1 2 3 5 7 8
정답 :
(1) temp
(2) item.length
📌다음 JAVA 코드에서 알맞는 출력 값을 작성하시오. ( 23년 1회 )
abstact class Vehicle {
String name;
abstract public String getName(String val);
public String getName() {
return "Vehicle name: " + name;
}
}
class Car extends Vehicle {
public Car(String val) {
name= super.name =val;
}
public String getName(String val) {
return "Car name:" + val;
}
public String getName(byte val[]) {
return "Car name:" + val;
}
}
public class Main {
public static void main(String[] args) {
Vehicle obj = new Car("Spark");
System.out.println(obj.getName());
}
}
정답 : Vehicle name : Spark
📌다음 자바 코드에 대한 출력 값을 작성하시오.
class Parent {
int x = 100;
Parent() {
this(500);
}
Parent(int x) {
this.x = x;
}
int getX() {
return x;
}
}
class Child extends Parent {
int x = 4000;
Child() {
this(5000);
}
Child(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getX());
}
}
정답 : 500
1. Child obj = new Child() 에서 Child클래스의 obj객체를 생성
2. Child클래스의 생성자인 Child() 호출
3. this(5000)은 Child(5000)을 호출
4. 때문에 Child클래스의 x=5000이 됨.
5. obj.getX() 호출
6. Child클래스에는 getX()메서드가 없고, 부모클래스인 Parent클래스의 getX() 실행
7. Parent 클래스의 생성자인 Parent() 호출
8. this(500)은 Parent(500) 호출
9. this.x = x를 실행하므로 Parent클래스의 x=500이 됨.
10. getX() return 500;
📌 다음 자바 코드에 대한 출력 값을 작성하시오. ( 22년 3회 )
public class Main {
static int[] MakeArray(){
int[] tempArr = new int[4];
for(int i=0; i<tempArr.length;i++){
tempArr[i] = i;
}
return tempArr;
}
public static void main(String[] args){
int[] intArr;
intArr = MakeArray();
for(int i=0; i < intArr.Length; i++)
System.out.print(intArr[i]);
}
}
정답 : 0123
📌 다음 자바 코드에 대한 출력 값을 작성하시오. ( 22년 3회 )
public class Exam {
public static void main(String[] args){
int a = 0;
for(int i=1; i<999; i++){
if(i%3==0 && i%2!=0)
a = i;
}
System.out.print(a);
}
}
정답 : 993
3의 배수이면서 짝수가 아닌 수를 찾으면 된다.
6n+3 (n>=0)을 만족하면서 값이 998보다 작은 수는 993이다.
📌다음 자바 코드에 대한 출력 값을 작성하시오. ( 22년 2회 )
public static void main(String args[]){
int i = 3;
int k = 1;
switch(i) {
case 1: k += 1;
case 2: k++;
case 3: k = 0;
case 4: k += 3;
case 5: k -= 10;
default: k--;
}
System.out.print(k);
}
정답 : -8
아주 비겁한 실수유도 문제.
switch(3)으로 시작해서 k=0; 으로 끝날듯 하지만,
break;문이 case마다 선언되어 있지않기때문에
case3, case4, case5, default 모두 실행된다.
따라서 k = -8
📌 다음 자바코드에서 알맞는 출력값을 작성하시오. ( 22년 1회 )
class A {
int a;
int b;
}
public class Main {
static void func1(A m){
m.a *= 10;
}
static void func2(A m){
m.a += m.b;
}
public static void main(String args[]){
A m = new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
정답 : 2000
📌 다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오. ( 22년 1회 )
class Car implements Runnable{
int a;
public void run(){
system.out.println("message")
}
}
public class Main{
public static void main(String args[]){
Thread t1 = new Thread(new ___());
t1.start();
}
}
정답 : Car
Thread클래스의 생성자에는 Runnable 인터페이스를 구현한 객체가 필요한데,
Car클래스에서 Runnable 인터페이스를 구현하고 있으므로 Car객체가 필요하다.
📌다음 Java 코드에 대한 알맞는 출력값을 쓰시오. ( 21년 3회 )
class Connection {
private static Connection _inst = null;
private int count = 0;
static public Connection get() {
if (_inst == null) {
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count() {
count++;
}
public int getCount() {
return count;
}
}
public class testcon {
public static void main(String[] args) {
Connection conn1 = Connection.get();
conn1.count();
Connection conn2 = Connection.get();
conn2.count();
Connection conn3 = Connection.get();
conn3.count();
System.out.print(conn1.getCount());
}
}
정답 : 3
댓글남기기